Conditional (computer programming)
part 21/26 · 46.2 KB total
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Predication
An alternative to conditional branch instructions is predication. Predication is an architectural feature that enables instructions to be conditionally executed instead of modifying the control flow.
Choice system cross reference
This table refers to the most recent language specification of each language. For languages that do not have a specification, the latest officially released implementation is referred to.
| Programming language | Structured if | Structured if | Structured if | switch –select–case | Conditional expressions | Arithmetic if | Pattern matching [A] |
|---|---|---|---|---|---|---|---|
| Programming language | then | else | else–if | switch –select–case | Conditional expressions | Arithmetic if | Pattern matching [A] |
| Ada | Yes | Yes | Yes | Yes | Yes | No | No |
| ALGOL-60 | Yes | Yes | Unneeded [C] | No | Yes | No | No |
| APL | No | Yes | Yes | Yes | Yes | No | No |
| Bash shell | Yes | Yes | Yes | Yes | Yes | No | Yes |
| C , C++ | No | Yes | Unneeded [B] [C] | Fall-through | Yes | No | No |
| C# | No | Yes | Unneeded [B] [C] | Yes | Yes | No | No |
| COBOL | Unneeded | Yes | Unneeded [C] | Yes | No | No | No |
| Eiffel | Yes | Yes | Yes | Yes | Yes | No | No |
| F# | Yes | Yes | Yes | Yes [D] | Yes | No | Yes |
| Fortran | Yes | Yes | Yes | Yes | Yes [G] | Yes [I] | No |
| Go | No | Yes | Unneeded [C] | Yes | No | No | No |
| Haskell | Yes | Needed | Unneeded [C] | Yes [D] | Yes | No | Yes |
| Java | No | Yes | Unneeded [C] | Fall-through [ 14 ] | Yes | No | No |
| ECMAScript ( JavaScript ) | No | Yes | Unneeded [C] | Fall-through [ 15 ] | Yes | No | No |
| Mathematica | No | Yes | Yes | Yes | Yes | No | Yes |
| Oberon | Yes | Yes | Yes | Yes | No | No | No |
| Perl | No | Yes | Yes | Yes | Yes | No | No |
| PHP | No | Yes | Yes | Fall-through | Yes | No | Yes |
| Pascal , Object Pascal ( Delphi ) | Yes | Yes | Unneeded | Yes | No | No | No |
| Python | No | Yes | Yes | Yes | Yes | No | Yes |
| QuickBASIC | Yes | Yes | Yes | Yes | No | No | No |
| Ruby | Yes | Yes | Yes | Yes | Yes | No | Yes [H] |
| Rust | No | Yes | Yes | Yes [D] | Yes | No | Yes |
| Scala | No | Yes | Unneeded [C] | Fall-through | Yes | No | Yes |
| SQL | Yes [F] | Yes | Yes | Yes [F] | Yes | No | No |
| Swift | No | Yes | Yes | Yes | Yes | No | Yes |
| Tcl | No | Yes | Yes | Yes | Yes | No | Yes |
| Visual Basic , classic | Yes | Yes | Yes | Yes | Yes | No | No |
| Visual Basic .NET | Yes | Yes | Yes | Yes | Yes | No | No |
| Windows PowerShell | No | Yes | Yes | Fall-through | Yes | No | No |
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────